YOLOv5+QT5的UI界面开发最终界面图:环境配置本文章基于python3.7的Annaconda中虚拟环境开发:1.1配置YOLOv5环境https://github.com/ultralytics/yolov5下载yolov5程序后,虚拟环境下运行:activatev5pipinstall-rrequirements.txt1.2配置QT环境pipinstallpyqt5pyqt5-toolsUI界面设计使用pyqt5自带的图形界面设计工具:designer,设计完成后,生成UI文件,然后转换成python代码,非常方便!打开designer.exe,创建MainWindow;界面设计
新建一个QMainWindow的空项目(懒得看又臭又长直接到最后复制整段代码)先新建一个QMainWindow的空项目,不使用.ui文件。这时候mainwindow.h文件中没有成员变量#pragmaexecution_character_set("utf-8")#include"mainwindow.h"#include#include#include#includeMainWindow::MainWindow(QWidget*parent):QMainWindow(parent){QDockWidget*leftdock=newQDockWidget;leftdock->setWindow
新建一个QMainWindow的空项目(懒得看又臭又长直接到最后复制整段代码)先新建一个QMainWindow的空项目,不使用.ui文件。这时候mainwindow.h文件中没有成员变量#pragmaexecution_character_set("utf-8")#include"mainwindow.h"#include#include#include#includeMainWindow::MainWindow(QWidget*parent):QMainWindow(parent){QDockWidget*leftdock=newQDockWidget;leftdock->setWindow
问题:QT图形视图框架,QGraphicsScene中默认接收触控事件,会将第一个点当作鼠标事件处理。在开发者开发的时候,可能会有这样的需求,希望自己的触控事件和鼠标事件能够分割开来。找到的解决方法:方案一:setAttribute(Qt::AA_SynthesizeMouseForUnhandledTouchEvents);setAttribute(Qt::AA_SynthesizeTouchForUnhandledMouseEvents);问题没有解决,修改这两个参数,也无法让QT的触控单击事件有响应。方案二:重写mouse事件,调用source事件将触控事件的强制转换给过滤掉,不接收鼠标
展示效果 功能实现想要实现鼠标拖拽绘图的效果,离不开鼠标的三大事件:按下、移动、释放那么具体实现实时绘制矩形框的核心流程是什么呢?第一步:鼠标左键点击,记录初始点击位置第二步:在窗口中移动鼠标,实时获取鼠标拖动点,根据拖动点绘制指定形状第三步:鼠标点击右键释放鼠标,绘制最终图形描述的实现流程很简单,那么,接下来就实际操作吧!在进行鼠标点击绘制的时候,为了兼容多个图形的实时绘制,这里,不只是用两个QPoint成员变量记录鼠标点,而是采取了vector容器存储的方式。例如:三角形图形,需要三个点才能确定图形;曲线图形,是由N多个点才能确定图形;等等。。。所以说,这里采用了vector容器进行数据存
00.目录文章目录00.目录01.Qt概述02.Qt5.12.12下载03.Qt5.12.12安装04.Qt5.12.12测试05.附录01.Qt概述Qt(官方发音[kju:t],音同cute)是一个跨平台的C++开发库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序,当然也可以开发不带界面的命令行(CommandUserInterface,CUI)程序。Qt是纯C++开发的,所以学好C++非常有必要,对于不了解C++的读者,我建议先阅读《C语言教程》,再阅读《C++教程》。C++是在C语言的基础上发展起来的,学完C语言就学了C++的一半了。Qt还存在Py
目录1.效果:2.滑动3.居中4.选中加粗5.使用的样式表1.效果: 2.滑动在使用触控屏时需要列表或视图能够滑动查看ui->tableView->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);QScroller*scroller=QScroller::scroller(ui->tableView->viewport());scroller->grabGesture(ui->tableView>viewport(),QScroller::LeftMouseButtonGesture);为滚动区域注册了鼠标左键的手势识别器,在触
1、用法一:一般用到控件comboBox的基本用法是获取当前的值:1.currentIndex();获取当前comBox的索引,是int类型的值。2.currentText();获取当前comBox的文本,是QString类型。2、用法二:可以通过以下两种方式来通过切换comobox的值来执行一些指令:1、通过首先在界面上拖入控件comobox,然后就是直接通过将comobox中的输入“Chinese”和“English”1voidMainWindow::on_comboBox_currentIndexChanged(constQString&arg1)2{3//if(ui->comboBox
leble和linedeit的数据显示是相同的【数据显示】connect(btn,&QPushButton::clicked,this,[=](){QStringmeijie;jieguo->setText(meijie.setNum(jisuan(line)));l2->setText(meijie.setNum(jisuanint(line)));});【数据计算】//获取lineedit或label中的数据并在linedeit中显示【一般在label中显示】doubleMainWindow::jisuan(QLineEdit*l){boolok;QStringlsnum;lsnum=l-
记录自己在学习中遇到的问题:在使用tcp时绑定自己的端口号时,每次都要手动输入或者在代码编写的时候固定死。就在想有没有便捷的方法,于是我便找到了一种不太美好的解决方法:QListQNetworkInterface::allAddresses()[static]ThisconveniencefunctionreturnsallIPaddressesfoundonthehostmachine.\ItisequivalenttocallingaddressEntries()onalltheobjectsreturnedbyallInterfaces()toobtainlistsofQHostAddr